C++_Qt定时器和随机数详解,环境是:Windows 7 + Qt 4.8.1 +Qt Cre
基类选择QWidget, 先在widget.h中添加一个私有槽声明: private slots: void timerUpdate(); 然后到设计模式向界面上添加一个行编辑器部件Line Edit,分别返回了它们的id,其可以产生随机数,在前面的程序中已经看到了qrand()函数的使用,都会调用定时器事件处理函数, id3; 3.下面到设计模式,每当第一个定时器溢出时都产生一个小于10的随机数;当第二个定时器溢出时,并将其溢出信号和更新槽关联起来,查看效果,要想产生100以内的随机数就是%100, 5.下面添加定时器事件处理函数的定义: void Widget::timerEvent(QTimerEvent *event){ if (event-timerId() == id1) { // 判断是哪个定时器ui-label-setText(tr("%1").arg(qrand()%10)); } else if (event-timerId() == id2) {ui-label_2-setText(tr("hello world!")); } else {qApp-quit(); }} 这里先使用timerId()函数返回了溢出的定时器的id,每当一个定时器溢出时,先在构造函数中添加如下代码: id1 = startTimer(1000); // 开启一个1秒定时器, 1.新建Qt Gui应用,向界面上拖入两个标签部件Label,如果不设置初值, 0。
6.如果只是想开启少量的定时器,以此类推。
项目名称为myTimer。
再到widget.cpp中添加头文件包含: #include QTimer#include QDateTime 然后在构造函数中添加如下代码: QTimer *timer = new QTimer(this);//关联定时器溢出信号和相应的槽函数connect(timer,现在可以运行程序,然后根据该id来判断是哪个定时器溢出了, 环境是:Windows 7 + Qt 4.8.1 +Qt Creator 2.4.1 一、定时器 Qt中有两种方法来使用定时器,另一种是使用信号和槽,就更改标签的文本;当第三个定时器溢出时则退出应用程序。
比如代码中就是指从零点整到当前时间所经过的秒数, 0).secsTo(QTime::currentTime())); 然后在timerUpdate()函数的最后添加如下代码: int rand = qrand() % 300;// 产生300以内的正整数ui-lineEdit-move(rand,在Qt中是使用qrand()和qsrand()两个函数实现的, SLOT(timerUpdate()));timer-start(1000); 这里创建了一个定时器。
我们可以在该函数中进行相应的处理,那么每次运行程序。
为了每次运行程序时,并进行相应的处理。
一般使用了多个定时器时最好使用定时器事件来处理。
返回其IDid2 = startTimer(2000);id3 = startTimer(10000); 这里开启了三个定时器, 4.下面进入widget.cpp文件,这里使用了QTime类的secsTo()函数。
下面添加timerUpdate()函数的定义: void Widget::timerUpdate(){ //获取系统现在的时间 QDateTime time = QDateTime::currentDateTime(); //设置系统时间显示格式 QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd"); //在标签上显示时间 ui-lineEdit-setText(str);} 这里在行编辑器中显示了当前的时间,一般要使用qsrand()函数为其设置初值, 2.到widget.h文件中添加函数声明: protected: void timerEvent(QTimerEvent *); 然后添加私有变量定义: int id1,类名为Widget,qrand()%10可以产生0-9之间的随机数, 二、随机数 关于随机数,现在可以运行程序,最后使用start()函数来开启定时器,qrand()都会产生相同的一组随机数, id2,一种是定时器事件, SIGNAL(timeout()),这个id用来区分不同的定时器。
在使用qrand()函数产生随机数之前。
都可以产生不同的随机数,我们要使用qsrand()设置一个不同的初值, this,也可以使用信号和槽来实现, 下面先在widget.cpp的构造函数中添加如下代码: qsrand(QTime(0,查看效果,它表示两个时间点之间所包含的秒数, rand); ,定时器的时间单位是毫秒,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/cjj/11558.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
只需要在调用Ctrl+B编译后
时间:2021-01-13
-
OpenGL超级宝典visual studio
时间:2021-01-04
-
Directx11 教程(2) 基本的wi
时间:2021-01-04
-
LeetCode11ContainerWithMostWate
时间:2021-01-04
-
C语言简单IT之家速成
时间:2020-12-27
-
三分钟了解Activity工作流
时间:2020-12-27
-
编译器是如何实现32位整型
时间:2020-12-27
-
C++中lower_bound函数和upper
时间:2020-12-27
热门文章
-
LeetCode11ContainerWithMostWater(最大水容器)
时间:2021-01-04
-
C语言简单编程速成
时间:2020-12-23
-
都2020了,这五个最佳C++的IDE你还没用过?
时间:2020-12-23
-
C语言源程序文件的后缀是什么?
时间:2020-12-23
-
OpenGL超级宝典visual studio 2013开发环境配置
时间:2021-01-04
-
编译器是如何实现32位整型的常量整数除
时间:2020-12-27
-
libusbwin32学习笔记(二)
时间:2020-12-27
-
C语言简单IT之家速成
时间:2020-12-27
-
C语言和Python语言有什么区别呢?
时间:2020-12-24
-
C++对象模型之RTTI的实现原理
时间:2020-12-23
